<?php namespace Common\Model;
use Hdphp\Model\Model;
//商品分类模型
class Gcate extends Model{
	//指明表名
	protected $table = "gcategory";
	//自动验证
	protected $validate = array(
	//array(字段名,验证方法,错误信息,验证条件,验证时间)
		array('cate_name','required','分类名称不能为空',3,3),
		array('cate_name','maxlen:10','分类名长度不能超过10',3,3),
		array('sort_order','num:0,65535','排序为0-65535范围',3,3)
	);
	
	//添加
	public function store(){
		if(!$this->create()) return false;
		$this->add();
		return true;
	}
	//编辑
	public function edit(){
		if(!$this->create()) return false;
		$this->save();
		return true;
	}
	
	public function getNoMy($cate_id){
		//获得当前分类的子集的cate_id
		$cate_ids = $this->getSon($this->get(),$cate_id);
		//把自己的cid压入
		$cate_ids[] = $cate_id;
		//获得除了自己和自己的子集的数据
		$data = $this->where("cate_id NOT IN(" . implode(',', $cate_ids) .")")->get();
		$data = Data::tree($data,'cate_name','cate_id','p_id');
		return $data;
	}
	
	public function getMy($cate_id){
		//获得当前分类的子集的cate_id
		$cate_ids = $this->getSon($this->get(),$cate_id);
		//把自己的cid压入
		$cate_ids[] = $cate_id;
		//获得除了自己和自己的子集的数据
		$data = $this->where("cate_id IN(" . implode(',', $cate_ids) .")")->get();
		$data = Data::tree($data,'cate_name','cate_id','p_id');
		return $data;
	}
	//获得当前分类的子集的cate_id
	public function getSon($data,$cate_id){
		$temp = array();
		foreach($data as $v){
			if($v['p_id'] == $cate_id){
				$temp[] = $v['cate_id'];
				$temp = array_merge($temp,$this->getSon($data,$v['cate_id']));
			}
		}
		return $temp;
	}
	
	
	//取某分类的下级分类列表
	function get_list($p_id = -1){
		$data = $this->where("p_id={$p_id}")
					 ->orderBy('sort_order','DESC')
					 ->get();
		return $data;
	}
     
    /**
     * 取得分类列表
     *
     * @param int $_id 大于等于0表示取某分类的下级分类，小于0表示取所有分类
     * @param bool $if_show 只取要显示的分类
     * @return array
     */
	function get_list1($p_id = -1,$if_show = false){
		$data = $this->where("{$p_id}>0 AND p_id={$p_id} AND {$if_show}=1")
					 ->orderBy('sort_order DESC')
					 ->get();
		return $data;
	}

	
	
	
	
	
	
	
	
	
}



 ?>